package com.platform.module.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.common.core.domain.Ztree;
import com.platform.module.domain.*;

import java.util.List;

/**
 * 地址资料Service接口
 * 
 * @author wangqi
 * @date 2020-06-24
 */
public interface IBaseSubscriberService extends IService<BaseSubscriber>
{
    /**
     * 查询地址资料列表
     * 
     * @param baseSubscriber 地址资料
     * @return 地址资料集合
     */
    public List<BaseSubscriber> selectBaseSubscriberList(BaseSubscriber baseSubscriber);

    /**
     * 新增地址资料
     * 
     * @param baseSubscriber 地址资料
     * @return 结果
     */
    public int insertBaseSubscriber(BaseSubscriber baseSubscriber);

    /**
     * 修改地址资料
     * 
     * @param baseSubscriber 地址资料
     * @return 结果
     */
    public int updateBaseSubscriber(BaseSubscriber baseSubscriber);

    /**
     * 批量删除地址资料
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBaseSubscriberByIds(String ids);

    /**
     * 删除地址资料信息
     * 
     * @param subscriberId 地址资料ID
     * @return 结果
     */
    public int deleteBaseSubscriberById(Long subscriberId);

    /**
     * 查询地址资料树列表
     * 
     * @return 所有地址资料信息
     */
    public List<Ztree> selectBaseSubscriberTree();

    /**
     * 取消授权热表
     *
     * @param subMeter 集中器和热表关联信息
     * @return 结果
     */
    public int deleteAuthSubMeter(LinkSubMeter subMeter);

    /**
     * 批量取消授权热表
     *
     * @param subscriberId 集中器ID
     * @param calorimeterIds 需要删除的热表ID
     * @return 结果
     */
    public int deleteAuthSubMeters(String subscriberId, String calorimeterIds);

    /**
     * 批量选择授权热表
     *
     * @param subscriberId 集中器ID
     * @param calorimeterIds 需要删除的热表ID
     * @return 结果
     */
    public int insertAuthSubMeters(String subscriberId, String calorimeterIds);
    /**
     * 取消授权集中器
     *
     * @param subConcentrator 集中器和集中器关联信息
     * @return 结果
     */
    public int deleteAuthSubConcentrator(LinkSubConcentrator subConcentrator);

    /**
     * 批量取消授权集中器
     *
     * @param subscriberId 集中器ID
     * @param concentratorIds 需要删除的集中器ID
     * @return 结果
     */
    public int deleteAuthSubConcentrators(String subscriberId, String concentratorIds);

    /**
     * 批量选择授权集中器
     *
     * @param subscriberId 集中器ID
     * @param concentratorIds 需要删除的集中器ID
     * @return 结果
     */
    public int insertAuthSubConcentrators(String subscriberId, String concentratorIds);
    /**
     * 取消授权阀门
     *
     * @param subValve 阀门和阀门关联信息
     * @return 结果
     */
    public int deleteAuthSubValve(LinkSubValve subValve);

    /**
     * 批量取消授权阀门
     *
     * @param subscriberId 阀门ID
     * @param valveIds 需要删除的阀门ID
     * @return 结果
     */
    public int deleteAuthSubValves(String subscriberId, String valveIds);

    /**
     * 批量选择授权阀门
     *
     * @param subscriberId 阀门ID
     * @param valveIds 需要删除的阀门ID
     * @return 结果
     */
    public int insertAuthSubValves(String subscriberId, String valveIds);
    /**
     * 取消授权室温采集器
     *
     * @param subTemp 室温采集器和室温采集器关联信息
     * @return 结果
     */
    public int deleteAuthSubTemp(LinkSubTemp subTemp);

    /**
     * 批量取消授权室温采集器
     *
     * @param subscriberId 室温采集器ID
     * @param brtIds 需要删除的室温采集器ID
     * @return 结果
     */
    public int deleteAuthSubTemps(String subscriberId, String brtIds);

    /**
     * 批量选择授权室温采集器
     *
     * @param subscriberId 室温采集器ID
     * @param brtIds 需要删除的室温采集器ID
     * @return 结果
     */
    public int insertAuthSubTemps(String subscriberId, String brtIds);
}
